home *** CD-ROM | disk | FTP | other *** search
/ Ultra Gameplayers 101 / Ultra Game Players Magazine, No. 101 - September 1997 (Imagine Publishing, Inc.)(1997).iso / pc / new_ugp.dxr / 00283_Text Scroller Class.ls < prev    next >
Encoding:
Text File  |  1997-07-10  |  2.0 KB  |  71 lines

  1. property sourceText, baseLine, upSprite, downSprite, displayMember, displayLines, selectedLine, normalColor, ancestor
  2.  
  3. on new me, paramList
  4.   set upSprite to getProp(paramList, #upSprite)
  5.   set downSprite to getProp(paramList, #downSprite)
  6.   set displayMember to getProp(paramList, #displayMember)
  7.   set displayMember to the number of member displayMember
  8.   set displayLines to getProp(paramList, #displayLines)
  9.   set sourceText to getProp(paramList, #sourceText)
  10.   set normalColor to getaProp(paramList, #normalColor)
  11.   if (displayMember > 0) and (normalColor >= 0) then
  12.     set the foreColor of member displayMember to translateColor(normalColor)
  13.   end if
  14.   set the stageColor to the stageColor
  15.   set selectedLine to 0
  16.   set baseLine to 1
  17.   ScrollText(me, 0)
  18.   return me
  19. end
  20.  
  21. on TurnOn me, spritenum
  22.   set delta to 0
  23.   set waitTime to 0
  24.   if spritenum = upSprite then
  25.     repeat while the mouseDown
  26.       if the ticks > waitTime then
  27.         ScrollText(me, -1)
  28.         set waitTime to the ticks + 15
  29.       end if
  30.     end repeat
  31.   else
  32.     if spritenum = downSprite then
  33.       repeat while the mouseDown
  34.         if the ticks > waitTime then
  35.           ScrollText(me, 1)
  36.           set waitTime to the ticks + 15
  37.         end if
  38.       end repeat
  39.     end if
  40.   end if
  41. end
  42.  
  43. on ScrollText me, delta
  44.   set maxTextLine to the number of lines in sourceText
  45.   put "lines in source" && maxTextLine
  46.   set maxOffset to maxTextLine - displayLines + 1
  47.   set baseLine to baseLine + delta
  48.   if baseLine < 1 then
  49.     set baseLine to 1
  50.   end if
  51.   if baseLine > maxOffset then
  52.     set baseLine to maxOffset
  53.   end if
  54.   set the text of member displayMember to line baseLine to baseLine + displayLines - 1 of sourceText
  55.   if (displayMember > 0) and (normalColor >= 0) then
  56.     set the foreColor of member displayMember to translateColor(normalColor)
  57.   end if
  58.   set the stageColor to the stageColor
  59.   updateStage()
  60. end
  61.  
  62. on TurnOff me
  63. end
  64.  
  65. on dispose me
  66.   if objectp(ancestor) then
  67.     dispose(ancestor)
  68.   end if
  69.   set ancestor to 0
  70. end
  71.